lvm2: install: fix "Argument list too long" error when copying symlinks
authorPetr Štetiar <[email protected]>
Wed, 21 May 2025 18:48:30 +0000 (18:48 +0000)
committerDaniel Golle <[email protected]>
Mon, 20 Oct 2025 19:53:11 +0000 (20:53 +0100)
commit073b460cb199d096e71f48279efe4e7b4fd64e57
tree0cd7505b54be1e3aa780abb8785aaf07ac4f2e05
parent6552887ae6f1a5fb2424d92eb608773fd5bbde1c
lvm2: install: fix "Argument list too long" error when copying symlinks

It was reported that in some build environments the install step fails
with following:

 find /home/.../buildsystem/build_dir/target-aarch64-unknown-linux-gnu_musl/lvm2-normal/LVM2.2.03.22/ipkg-install/usr/sbin/ -type l -exec cp -fpR -a {} /home/.../buildsystem/build_dir/target-aarch64-unknown-linux-gnu_musl/lvm2-normal/LVM2.2.03.22/.pkgdir/lvm2/sbin/ \;
 make[6]: /bin/sh: Argument list too long

This is likely happening once the number of symlinks exceeds the shell's
maximum argument limit.

So lets fix it by switching to more reliable xargs based solution:

 print0/xargs -0 to handle filenames with special characters
 xargs -r to skip execution if no files are found
 cp -t to specify the target directory once instead of for each file

Fixes: #26552
Signed-off-by: Petr Štetiar <[email protected]>
utils/lvm2/Makefile